home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / util / cli / amunix.lha / AmunixV103.pas < prev    next >
Pascal/Delphi Source File  |  1994-04-18  |  3KB  |  166 lines

  1. Program Unix_Amiga_Strip;
  2. {
  3. Programme Name    :    Amunix            Version    :    1.03
  4. Author        :    Mark Price        Date    :    13/2/93
  5.  
  6. Specification:
  7.  
  8.     The programme must return an ASCII text file, after stripping the
  9.     original file of extra carriage returns.
  10. }
  11.  
  12.  
  13. Uses DOS,CRT;
  14.  
  15. Const
  16.  
  17. {Temporary File In Ram Used When Output File Is The Input File}
  18.  
  19.     Temp_file    =    'RAM:Aminix.Temp';
  20.  
  21. Var
  22.     Character    :    Char;
  23.     Unix_File    :    Text;
  24.     Unix_Name    :    String;
  25.     Amiga_File    :    Text;
  26.     Amiga_Name    :    String;
  27.     Temp_Name    :    String;
  28.     Res,Count    :    Integer;
  29.     Error        :    Integer;
  30.     DosData        :    SearchRec;    
  31.  
  32. Procedure Convert_Scripts;
  33.  
  34. {
  35. Function:
  36.     
  37.     Reads a Character From The Input File, Checks To See If The Value
  38.     Of The Character = CHR(13). If It Isn't Then The Character Is Written
  39.     To The Output File. If It Is Then The Character Is Skipped.
  40. }
  41.  
  42. Begin
  43.     Reset(Unix_File,Unix_Name);    { Open Unix_File For Reading} 
  44.     Error := IOresult;
  45.     If Error <> 0
  46.     Then
  47.         Begin
  48.             WriteLn;
  49.             WriteLn('File ',Unix_Name,' Does Not Exist');
  50.             WriteLn;
  51.             Halt
  52.         End;
  53.         
  54.     Rewrite(Amiga_File,Amiga_Name);    { Open Amiga File For Writing }
  55.     Write('Stripping File ');
  56.     TextColor(3);
  57.     Write(Amiga_Name);
  58.     TextColor(1);
  59.     Write(' .... ');
  60.  
  61.     { While Not At The End OF File Read A Character From Unix_File
  62.       If Not a CR then Write The Character To The Amiga_File 
  63.     }
  64.  
  65.     While NOT EOF(Unix_File) Do
  66.     Begin
  67.         Read(Unix_File,Character);
  68.         IF Character <> CHR(13)
  69.         Then
  70.             Write(Amiga_File,Character);
  71.     End;
  72.  
  73.     { Close Both The Unix_File and The Amiga_File }
  74.  
  75.     Close(Unix_File);
  76.     Close(Amiga_File);
  77.     WriteLn('Finished')
  78. End;
  79.  
  80.  
  81.     
  82. Begin
  83.  
  84.     { Check Number Of Parameters Passed To Program }
  85.  
  86.     Res := ParamCount;
  87.     If (Res<2) And (Res>0)
  88.     Then
  89.         Begin
  90.             WriteLn;
  91.             WriteLn('Too Few Arguements');
  92.             Halt;
  93.             WriteLn
  94.         End;
  95.     If (Res=0)    { If No Parameters Passed Display Command Syntax }
  96.     Then
  97.         Begin
  98.             TextColor(3);
  99.             WriteLn;
  100.             WriteLn('© Mark Price 1993    Version 1.03');
  101.             WriteLn('Converts PC/Unix ASCII Files To Amiga ASCII');
  102.             WriteLn;
  103.             TextColor(2);
  104.             HighVideo;
  105.             Write('Amunix ');
  106.             NormVideo;
  107.             TextColor(1);
  108.             WriteLn('<UnixFile> <AmigaFile>');
  109.             HighVideo;
  110.             Write('       -r ');
  111.             NormVideo;
  112.             WriteLn('<FileName> WildCards Accepted');
  113.             WriteLn;
  114.             Halt
  115.         End;
  116.     If (Res>2)
  117.     Then
  118.     
  119.         Begin
  120.             WriteLn;
  121.             WriteLn('Too Many Arguements');
  122.             WriteLn;
  123.             Halt
  124.         End;
  125.  
  126.     Amiga_Name := ParamStr(2);    { Amiga_File Name = Second Parameter }
  127.     
  128.     
  129.     If ParamStr(1)='-r'    { If First Parameter='-r' Then Execute This }
  130.     Then
  131.         Begin
  132.             { Find First File Matching Amiga_Name }
  133.  
  134.             FindFirst(Amiga_Name,AnyFile,DosData);
  135.             While (DosError=0) Do
  136.             Begin
  137.                 With DosData Do
  138.                 Amiga_Name := Name;
  139.                 
  140.                 { Create Copy Of Amiga_File }
  141.                 Exec('Copy',Amiga_Name+' '+Temp_File);
  142.  
  143.                 Erase(Amiga_Name);
  144.                 Unix_Name := Temp_File;
  145.                 Convert_Scripts;
  146.                 Erase(Temp_File);
  147.                 FindNext(DosData)
  148.             End;
  149.         End
  150.     Else
  151.         Begin
  152.             Unix_Name := ParamStr(1);
  153.     
  154.             If Unix_Name = Amiga_Name
  155.             Then
  156.                 Begin
  157.                     WriteLn;
  158.                     WriteLn('Cannot Amunix Onto Same FileName');
  159.                     WriteLn;
  160.                     Halt
  161.                 End;
  162.             Convert_Scripts
  163.         End;
  164.     WriteLn(Chr(7));
  165.     WriteLn
  166. End.